﻿// // ******************************************************************
// //       /\ /|       @file       JellyfinUserPolicyDto.cs
// //       \ V/        @brief      await29
// //       | "")       @author     Await, 285283010@qq.com
// //       /  |
// //      /  \\        @Modified   2024-11-11 19:11
// //    *(__\_\        @Copyright  Copyright (c) , 2024-11-11 19:11 Await
// // ******************************************************************

namespace AutomaticSubtitles.Contracts.Dto.Jellyfin;

public class JellyfinUserPolicyDto
{
    public JellyfinUserPolicyDto()
    {
        EnableContentDeletion = true;
        EnableSyncTranscoding = true;
        EnableMediaPlayback = true;
        EnableAudioPlaybackTranscoding = true;
        EnableVideoPlaybackTranscoding = true;
        EnablePlaybackRemuxing = true;
        EnableLiveTvManagement = true;
        EnableLiveTvAccess = true;
        EnableLiveTvManagement = true;
        EnableSharedDeviceControl = true;
        BlockedTags = new string[0];
        EnableUserPreferenceAccess = true;
        EnableAllChannels = true;
        EnabledChannels = new string[0];
        EnableAllFolders = true;
        EnabledFolders = new string[0];
        EnabledDevices = new string[0];
        EnableAllDevices = true;
        EnableContentDownloading = true;
        EnablePublicSharing = true;
    }

    public bool IsAdministrator { get; set; }

    public bool IsHidden { get; set; }

    public bool IsDisabled { get; set; }

    public int? MaxParentalRating { get; set; }

    public string[] BlockedTags { get; set; }

    public bool EnableUserPreferenceAccess { get; set; }


    public bool EnableRemoteControlOfOtherUsers { get; set; }

    public bool EnableSharedDeviceControl { get; set; }

    public bool EnableLiveTvManagement { get; set; }

    public bool EnableLiveTvAccess { get; set; }

    public bool EnableMediaPlayback { get; set; }

    public bool EnableAudioPlaybackTranscoding { get; set; }

    public bool EnableVideoPlaybackTranscoding { get; set; }

    public bool EnablePlaybackRemuxing { get; set; }

    public bool EnableContentDeletion { get; set; }

    public bool EnableContentDownloading { get; set; }

    public bool EnableSyncTranscoding { get; set; }

    public string[] EnabledDevices { get; set; }

    public bool EnableAllDevices { get; set; }

    public string[] EnabledChannels { get; set; }

    public bool EnableAllChannels { get; set; }

    public string[] EnabledFolders { get; set; }

    public bool EnableAllFolders { get; set; }

    public int InvalidLoginAttemptCount { get; set; }

    public bool EnablePublicSharing { get; set; }

    public string[] BlockedMediaFolders { get; set; }

    public string[] BlockedChannels { get; set; }

    public int RemoteClientBitrateLimit { get; set; }
}